package com.example.vendingmachine.service;

import com.example.vendingmachine.dto.PaymentRequestDTO;
import com.example.vendingmachine.dto.PaymentQuery;
import com.example.vendingmachine.dto.PaymentStatsDTO;
import com.example.vendingmachine.entity.PaymentRecord;
import com.github.pagehelper.PageInfo;

/**
 * 支付服务接口
 */
public interface PaymentService {
    /**
     * 分页查询支付记录列表
     */
    PageInfo<PaymentRecord> listPayments(PaymentQuery query);
    
    /**
     * 获取支付记录详情
     */
    PaymentRecord getPaymentById(Long id);
    
    /**
     * 创建支付记录
     */
    PaymentRecord createPayment(PaymentRequestDTO request);
    
    /**
     * 处理支付回调
     */
    void handlePaymentCallback(String payType, String transactionId, String status);
    
    /**
     * 申请退款
     */
    void refundPayment(Long id);
    
    /**
     * 处理退款回调
     */
    void handleRefundCallback(String payType, String transactionId, String status);
    
    /**
     * 获取支付统计数据
     */
    PaymentStatsDTO getPaymentStats(PaymentQuery query);
} 